package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import manejadores.ManejadorBajaTension;

import censo.db;
import entidades.BajaTension;

/**
 * Servlet implementation class SrvTransformador
 */
@WebServlet(description = "Servlet Baja Tension", urlPatterns = { "/SrvBaja" })
public class SrvBaja extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvBaja() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    protected void ProcesarPeticion(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
    	response.setContentType("text/html;charset=ISO-8859-1");
    	PrintWriter out = response.getWriter();

		String operacion = (String) request.getParameter("operacion");
		
		db conexion = null;
		
		try {
			if (operacion.equals("add")) {
				conexion = new db();
				
				String transformador = (String)request.getParameter("transformador");
				String poste_material = (String)request.getParameter("poste_material");
				String poste_altura = (String)request.getParameter("poste_altura");
				String poste_compartido = (String)request.getParameter("poste_compartido");
				String caja_tipo = (String)request.getParameter("caja_tipo");
				String caja_ductos = (String)request.getParameter("caja_ductos");
				String caja_compartida = (String)request.getParameter("caja_compartida");
				String tierra = (String)request.getParameter("tierra");
				String cantidad_usuarios = (String)request.getParameter("cantidad_usuarios");
				String ap_tipo = (String)request.getParameter("ap_tipo");
				String ap_cantidad = (String)request.getParameter("ap_cantidad");
				String ap_potencia = (String)request.getParameter("ap_potencia");
				String tramo_nodo_inicial = (String)request.getParameter("tramo_nodo_inicial");
				String tramo_nodo_final = (String)request.getParameter("tramo_nodo_final");
				String tramo_tipo = (String)request.getParameter("tramo_tipo");
				String tramo_longitud = (String)request.getParameter("tramo_longitud");
				String fase_tipo = (String)request.getParameter("fase_tipo");
				String fase_conductores = (String)request.getParameter("fase_conductores");
				String fase_calibre = (String)request.getParameter("fase_calibre");
				String fase_material = (String)request.getParameter("fase_material");
				String neutro_calibre = (String)request.getParameter("neutro_calibre");
				String neutro_material = (String)request.getParameter("neutro_material");
				String ap_calibre = (String)request.getParameter("ap_calibre");
				String ap_material = (String)request.getParameter("ap_material");
				String notas = (String)request.getParameter("notas");
				String usuario = (String)request.getParameter("usuario");
				
				
				
				
				BajaTension baja = new BajaTension();

				baja.setTransformador(transformador);
				baja.setPoste_material(poste_material);
				baja.setPoste_altura(poste_altura);
				baja.setPoste_compartido(poste_compartido);
				baja.setCaja_tipo(caja_tipo);
				baja.setCaja_ductos(caja_ductos);
				baja.setCaja_compartida(caja_compartida);
				baja.setTierra(tierra);
				baja.setCantidad_usuarios(cantidad_usuarios);
				baja.setAp_tipo(ap_tipo);
				baja.setAp_cantidad(ap_cantidad);
				baja.setAp_potencia(ap_potencia);
				baja.setTramo_nodo_inicial(tramo_nodo_inicial);
				baja.setTramo_nodo_final(tramo_nodo_final);
				baja.setTramo_tipo(tramo_tipo);
				baja.setTramo_longitud(tramo_longitud);
				baja.setFase_tipo(fase_tipo);
				baja.setFase_conductores(fase_conductores);
				baja.setFase_calibre(fase_calibre);
				baja.setFase_material(fase_material);
				baja.setNeutro_calibre(neutro_calibre);
				baja.setNeutro_material(neutro_material);
				baja.setAp_calibre(ap_calibre);
				baja.setAp_material(ap_material);
				baja.setNotas(notas);
				baja.setUsuario(usuario);
				
				
				ManejadorBajaTension mbt = new ManejadorBajaTension(baja,conexion);
				if (mbt.Add()) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}

			if (operacion.equals("update")) {
				conexion = new db();
				
				String transformador = (String)request.getParameter("transformador");
				String poste_material = (String)request.getParameter("poste_material");
				String poste_altura = (String)request.getParameter("poste_altura");
				String poste_compartido = (String)request.getParameter("poste_compartido");
				String caja_tipo = (String)request.getParameter("caja_tipo");
				String caja_ductos = (String)request.getParameter("caja_ductos");
				String caja_compartida = (String)request.getParameter("caja_compartida");
				String tierra = (String)request.getParameter("tierra");
				String cantidad_usuarios = (String)request.getParameter("cantidad_usuarios");
				String ap_tipo = (String)request.getParameter("ap_tipo");
				String ap_cantidad = (String)request.getParameter("ap_cantidad");
				String ap_potencia = (String)request.getParameter("ap_potencia");
				String tramo_nodo_inicial = (String)request.getParameter("tramo_nodo_inicial");
				String tramo_nodo_final = (String)request.getParameter("tramo_nodo_final");
				String tramo_tipo = (String)request.getParameter("tramo_tipo");
				String tramo_longitud = (String)request.getParameter("tramo_longitud");
				String fase_tipo = (String)request.getParameter("fase_tipo");
				String fase_conductores = (String)request.getParameter("fase_conductores");
				String fase_calibre = (String)request.getParameter("fase_calibre");
				String fase_material = (String)request.getParameter("fase_material");
				String neutro_calibre = (String)request.getParameter("neutro_calibre");
				String neutro_material = (String)request.getParameter("neutro_material");
				String ap_calibre = (String)request.getParameter("ap_calibre");
				String ap_material = (String)request.getParameter("ap_material");
				String notas = (String)request.getParameter("notas");
				String key = (String)request.getParameter("key");
				
				
				
				
				BajaTension baja = new BajaTension();

				baja.setTransformador(transformador);
				baja.setPoste_material(poste_material);
				baja.setPoste_altura(poste_altura);
				baja.setPoste_compartido(poste_compartido);
				baja.setCaja_tipo(caja_tipo);
				baja.setCaja_ductos(caja_ductos);
				baja.setCaja_compartida(caja_compartida);
				baja.setTierra(tierra);
				baja.setCantidad_usuarios(cantidad_usuarios);
				baja.setAp_tipo(ap_tipo);
				baja.setAp_cantidad(ap_cantidad);
				baja.setAp_potencia(ap_potencia);
				baja.setTramo_nodo_inicial(tramo_nodo_inicial);
				baja.setTramo_nodo_final(tramo_nodo_final);
				baja.setTramo_tipo(tramo_tipo);
				baja.setTramo_longitud(tramo_longitud);
				baja.setFase_tipo(fase_tipo);
				baja.setFase_conductores(fase_conductores);
				baja.setFase_calibre(fase_calibre);
				baja.setFase_material(fase_material);
				baja.setNeutro_calibre(neutro_calibre);
				baja.setNeutro_material(neutro_material);
				baja.setAp_calibre(ap_calibre);
				baja.setAp_material(ap_material);
				baja.setNotas(notas);
				
				
				ManejadorBajaTension mbt = new ManejadorBajaTension(baja,conexion);
				if (mbt.Update(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
				
				
			}
			
			if (operacion.equals("remove")) {
				String key = (String)request.getParameter("key");
				ManejadorBajaTension mbt = new ManejadorBajaTension(conexion);
				if (mbt.Remove(key)) {
					out.print("OK");
				}else {
					out.print("Error al procesar la solicitud");
				}
			}

		
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			out.print("Error de conexion con el servidor: "
					+ e.getMessage());
		} finally { 
			if (conexion != null) {
				try {
					conexion.Close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					out.print(e.getMessage());
				}
			}
		}
		
		
		
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

}
